package com.kuaima.util;



import java.sql.SQLException;


        import com.baomidou.mybatisplus.enums.IdType;
        import com.baomidou.mybatisplus.generator.AutoGenerator;
        import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
        import com.baomidou.mybatisplus.generator.config.GlobalConfig;
        import com.baomidou.mybatisplus.generator.config.PackageConfig;
        import com.baomidou.mybatisplus.generator.config.StrategyConfig;
        import com.baomidou.mybatisplus.generator.config.rules.DbType;
        import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

public class Generator {

    public static void main(String[] args) throws SQLException {

        //1. 全局配置
        GlobalConfig config = new GlobalConfig();
        config.setActiveRecord(true); // 是否支持AR模式
        config.setAuthor("Bean"); // 作者
                config.setOutputDir("D:\\workspace_mp"); // 生成路径
        //config.setOutputDir("/Users/mac/Downloads"); // 生成路径
        config.setFileOverride(true);  // 文件覆盖
        //config.setIdType(IdType.AUTO); // 主键策略
        config.setServiceName("%sService") ; // 设置生成的service接口的名字的首字母是否为I
                // IEmployeeService
        config.setBaseResultMap(true);//生成基本的resultMap
        config.setBaseColumnList(true);//生成基本的SQL片段

        //2. 数据源配置
        DataSourceConfig dsConfig = new DataSourceConfig();
        dsConfig.setDbType(DbType.MYSQL);  // 设置数据库类型
        dsConfig.setDriverName("com.mysql.jdbc.Driver");
        dsConfig.setUrl("jdbc:mysql://118.25.25.228:3306/haokuai");
        dsConfig.setUsername("mysql");
        dsConfig.setPassword("lwjzyl07150206");

        //3. 策略配置globalConfiguration中
        StrategyConfig stConfig = new StrategyConfig();
        stConfig.setCapitalMode(true); //全局大写命名
        stConfig.setDbColumnUnderline(true);  // 指定表名 字段名是否使用下划线
        stConfig.setNaming(NamingStrategy.underline_to_camel); // 数据库表映射到实体的命名策略
                //.setTablePrefix("tbl_")
        String[] aa = new String[1];
        aa[0] = "sys_agent_category_cfg";
        stConfig.setInclude(aa);  // 生成的表

        //4. 包名策略配置
        PackageConfig pkConfig = new PackageConfig();
        pkConfig.setParent("com.kuaimacode.kframework.agent");
        pkConfig.setMapper("mybatis.mapper");//dao
        pkConfig.setService("service.category");//servcie
        pkConfig.setController("controller.category");//controller
        pkConfig.setEntity("mybatis.models");
        pkConfig.setXml("mapper");//mapper.xml

        //5. 整合配置
        AutoGenerator ag = new AutoGenerator();
        ag.setGlobalConfig(config);
        ag.setDataSource(dsConfig);
        ag.setStrategy(stConfig);
        ag.setPackageInfo(pkConfig);

        //6. 执行
        ag.execute();
    }

}